Repository navigation
fix(config): validate custom rules, accept language names, add a dry run - #691
Merged
Merged
Conversation
ajianaz
added a commit
that referenced
this pull request
Oct 27, 2026
…run (#691) ## What - `Config::validate` (so config load and `cora config validate`) now rejects an invalid regex, an empty or duplicate id, an id shadowing a built-in rule, an empty message, an empty `languages` list and unknown `languages` values, naming the rule. - `languages` accepts language names (`rust`) as well as extensions (`rs`); `languages` and `exclude` are optional. - `cora config validate --dry-run [--path DIR]` runs each custom rule over the project and prints how many lines it matched (0 matches is flagged). - `docs/configuration.md` shows the real schema (`rules_engine.custom`, the free-text `rules:` list, required fields); the 0.19.0 changelog line says `custom`. ## Why A mistyped pattern or language made a rule silently inactive while `config validate` said valid. Closes #684, closes #678. ## Testing - Unit tests for validation, language normalisation and optional YAML fields. - 4 end-to-end tests in tests/custom_rules.rs (invalid regex fails validation, docs example loads and fires, unknown language, dry run flags a silent rule). - fmt, clippy -D warnings and the full suite pass. Signed-off-by: ajianaz <ajianaz@users.noreply.github.com> Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Config::validate(so config load andcora config validate) now rejects an invalid regex, an empty or duplicate id, an id shadowing a built-in rule, an empty message, an emptylanguageslist and unknownlanguagesvalues, naming the rule.languagesaccepts language names (rust) as well as extensions (rs);languagesandexcludeare optional.cora config validate --dry-run [--path DIR]runs each custom rule over the project and prints how many lines it matched (0 matches is flagged).docs/configuration.mdshows the real schema (rules_engine.custom, the free-textrules:list, required fields); the 0.19.0 changelog line sayscustom.Why
A mistyped pattern or language made a rule silently inactive while
config validatesaid valid. Closes #684, closes #678.Testing